﻿using Modules.Project;
using System.ComponentModel.DataAnnotations;
using static Modules.BankSpecialAccount.BankSpecialAccountConstants;

namespace ManagementApi.Models.System.ProjectSpecialAccount
{
    /// <summary>
    /// 收支信息表单
    /// </summary>
    public class ProjectSpecialAccountPaymentEditForm
    {
        /// <summary>
        /// author:hzj
        /// date:2023/11/8
        ///</summary>
        public int Id { get; set; }

        /// <summary>
        /// 流水号
        ///</summary>
        [Display(Name = "流水号")]
        public string? SerialNumber { get; set; }

        /// <summary>
        /// 项目ID
        /// </summary>
        [Display(Name = "项目ID")]
        [Required(ErrorMessage = "{0}不能为空")]
        public int ProjectId { get; set; }

        /// <summary>
        /// 银行流水号
        ///</summary>
        [Display(Name = "银行账号")]
        [Required(ErrorMessage = "{0}不能为空")]
        public string? BankSerialNumber { get; set; }

        /// <summary>
        /// 收支类型
        ///</summary>
        [Display(Name = "收支类型")]
        [Required(ErrorMessage = "{0}不能为空")]
        public 收支类型 IncomeType { get; set; }

        /// <summary>
        /// 交易类型
        ///</summary>
        [Display(Name = "交易类型")]
        [Required(ErrorMessage = "{0}不能为空")]
        public 交易类型 TradeType { get; set; }

        /// <summary>
        /// 账户Id
        ///</summary>
        [Display(Name = "账户Id")]
        [Required(ErrorMessage = "{0}不能为空")]
        public int? AccountId { get; set; }

        /// <summary>
        /// 账户名称
        ///</summary>
        [Display(Name = "账户名称")]
        [Required(ErrorMessage = "{0}不能为空")]
        public string? AccountName { get; set; }

        /// <summary>
        /// 银行账号
        ///</summary>
        [Display(Name = "银行账号")]
        [Required(ErrorMessage = "{0}不能为空")]
        public string? BankNo { get; set; }

        /// <summary>
        /// 对方户名
        ///</summary>
        [Display(Name = "对方户名")]
        [Required(ErrorMessage = "{0}不能为空")]
        public string? OppositeName { get; set; }

        /// <summary>
        /// 对方账户
        ///</summary>
        [Display(Name = "对方账户")]
        [Required(ErrorMessage = "{0}不能为空")]
        public string? OppositeAccount { get; set; }

        /// <summary>
        /// 收支金额
        ///</summary>
        [Display(Name = "收支金额")]
        [Required(ErrorMessage = "{0}不能为空")]
        public decimal Amount { get; set; }

        /// <summary>
        /// 收支日期
        /// </summary>
        [Display(Name = "收支日期")]
        public DateTime? IncomeDate { get; set; }

        /// <summary>
        /// 余额
        ///</summary>
        [Display(Name = "余额")]
        public decimal? Balance { get; set; }
    }
}